﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using DTO;
using BUSLayer;

namespace QuanLyThuVien
{
    public partial class frmQuanlydocgia : Form
    {
        private Boolean bThem;
        public frmQuanlydocgia()
        {
            InitializeComponent();
        }

        private void btThoat_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void label4_Click(object sender, EventArgs e)
        {

        }

        private void btThem_Click(object sender, EventArgs e)
        {
            //////////////////////////////////////////////////
            //Thiet lap gia dien khi them
            gbTTDG.Enabled = true;
            btThem.Enabled = false;
            btSua.Enabled = false;
            btXoa.Enabled = false;
            btDongY.Enabled = true;
            btThoat.Visible = false;
            btBoqua.Visible = true;

            bThem = true;
            tbHoten.Focus();
            //////////////////////////////////////////////////////////////////////////
            //Xoa trang
            tbHoten.Clear();
            tbCMND.Clear();
            tbDienthoai.Clear();
            tbDiachi.Clear();


        }

        private void frmQuanlydocgia_Load(object sender, EventArgs e)
        {
            btDongY.Enabled = false;
            //////////////////////////////////////////////////////////////////////////
            //Load ca thong tin can thiet
            try
            {
                //Danh sach doc gia
                DocGiaBus dgBus = new DocGiaBus();
                DataTable dt = dgBus.LayDanhSach();
                dtgvDSDG.DataSource = dt;
            }
            catch (System.Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }

        private void btBoqua_Click(object sender, EventArgs e)
        {
            //Reset lai nhu giao dien ban dau
            gbTTDG.Enabled = false;
            btThem.Enabled = true;
            btSua.Enabled = true;
            btXoa.Enabled = true;
            btDongY.Enabled = false;
            btThoat.Visible = true;
            btBoqua.Visible = false;
            if (dtgvDSDG.Enabled == false)
                dtgvDSDG.Enabled = true;


        }

        private void btDongY_Click(object sender, EventArgs e)
        {
            //Reset lai nhu giao dien ban dau
            gbTTDG.Enabled = false;
            btThem.Enabled = true;
            btSua.Enabled = true;
            btXoa.Enabled = true;
            btDongY.Enabled = false;
            btThoat.Visible = true;
            btBoqua.Visible = false;
            if (dtgvDSDG.Enabled == false)
                dtgvDSDG.Enabled = true;

            //////////////////////////////////////////////////////////////////////////
            try
            {
                //Thao tac them
                if (bThem)
                {
                   
                    //////////////////////////////////////////////////////////////////////////
                    //Them doc gia moi

                    DocGiaBus dgBus = new DocGiaBus();
                    DocGiaDto dgDto = new DocGiaDto();
                    dgDto.TenDocGia = tbHoten.Text;
                    dgDto.CMND = tbCMND.Text;
                    dgDto.DienThoai = tbDienthoai.Text;
                    dgDto.DiaChi = tbDiachi.Text;

                    dgBus.Them(dgDto);
                    tbMadocgia.Text = dgDto.MaDocGia.ToString();
                    //////////////////////////////////////////////////////////////////////////
                    MessageBox.Show("Đã thêm thông tin đọc giả\n" + dgDto.TenDocGia.ToString() + " - Mã ĐG: " + dgDto.MaDocGia.ToString() +
                       "\nvào CSDL!", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    //////////////////////////////////////////////////////////////////////////
                    //Update lai cho bang DSDG
                    DataTable dt = dgBus.LayDanhSach();
                    dtgvDSDG.DataSource = dt;
                    
                }
                if (!bThem)
                {
                    //////////////////////////////////////////////////////////////////////////
                    //Xu ly cho thao tac sua
                    //Thao tac sua chua thong tin cho 1 doc gia

                    DataTable dt = (DataTable)dtgvDSDG.DataSource;

                    //Sua lai thong tin khach hang
                    DocGiaDto dgDto = new DocGiaDto();
                    dgDto.MaDocGia = dt.Rows[dtgvDSDG.CurrentRow.Index][0].GetHashCode();

                    dgDto.TenDocGia = tbHoten.Text;
                    dgDto.CMND = tbCMND.Text;
                    dgDto.DienThoai = tbDienthoai.Text;
                    dgDto.DiaChi = tbDiachi.Text;


                    DocGiaBus dgBus = new DocGiaBus();
                    dgBus.Sua(dgDto);
                    MessageBox.Show("Đã cập nhật thông tin đọc giả\n" + dgDto.TenDocGia.ToString() + " - Mã ĐG: " + dgDto.MaDocGia.ToString() +
                        "\nvào CSDL!", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    //Update lai cho bang DSDG
                    dt = dgBus.LayDanhSach();
                    dtgvDSDG.DataSource = dt;

                }
            }
            catch (System.Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }

        private void btSua_Click_1(object sender, EventArgs e)
        {
            gbTTDG.Enabled = true;
            btThem.Enabled = false;
            btSua.Enabled = false;
            btXoa.Enabled = false;
            btDongY.Enabled = true;
            btThoat.Visible = false;
            btBoqua.Visible = true;
            tbHoten.Focus();

            bThem = false;

            //////////////////////////////////////////////////////////////////////////
            //Hien thi thong tin doc gia len bang phuc vu cho viec sua
            DataTable dt = (DataTable)dtgvDSDG.DataSource;
            int maDG = dt.Rows[dtgvDSDG.CurrentRow.Index][0].GetHashCode();

            DocGiaBus dgBus = new DocGiaBus();
            DocGiaDto dgDto = dgBus.TimKiem(maDG);

            tbMadocgia.Text = dgDto.MaDocGia.ToString();
            tbHoten.Text = dgDto.TenDocGia;
            tbCMND.Text = dgDto.CMND;
            tbDienthoai.Text = dgDto.DienThoai;
            tbDiachi.Text = dgDto.DiaChi;
            //////////////////////////////////////////////////////////////////////////
            dtgvDSDG.Enabled = false;
        }

        private void btXoa_Click_1(object sender, EventArgs e)
        {
            DialogResult rs;
            rs = MessageBox.Show("Bạn có chắc là muốn xóa thông tin đọc giả đang được chọn?", "Thông báo", MessageBoxButtons.YesNo, MessageBoxIcon.Warning);
            if (rs == DialogResult.Yes)
            {
                //////////////////////////////////////////////////////////////////////////
                DataTable dt = (DataTable)dtgvDSDG.DataSource;
                //Tien hanh xoa thong tin doc gia
                int maDG = dt.Rows[dtgvDSDG.CurrentRow.Index][0].GetHashCode();
                DocGiaBus dgBus = new DocGiaBus();
                DocGiaDto dgDto = dgBus.TimKiem(maDG);
                if(dgDto.TinhTrang==false)
                {
                   
                    dgBus.Xoa(maDG);
                    //////////////////////////////////////////////////////////////////////////
                    //cap nhat lai bang
                    dt = dgBus.LayDanhSach();
                    dtgvDSDG.DataSource = dt;
                }
               
                else if(dgDto.TinhTrang==true)
                {
                    MessageBox.Show("Không thể xoá thông tin đọc giả đang muợn sách!", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
               
            }
        }
    }
}